package com.hsnn.medstgmini.subscribe.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.hsnn.medstgmini.pro.project.model.BidProject;
import com.hsnn.medstgmini.subscribe.dao.BidSubscribeDao;
import com.hsnn.medstgmini.subscribe.model.BidSubscribe;
import com.hsnn.medstgmini.subscribe.model.BidSubscribeDetail;
import com.hsnn.medstgmini.subscribe.service.BidSubscribeManager;
import com.hsnn.medstgmini.util.Pagination;

/**
 * @category
 * @author 韩守松
 * @date 2015年8月27日
 */
@Service
public class BidSubscribeManagerImpl implements BidSubscribeManager{
	
	@Autowired
	private BidSubscribeDao bidSubscribeDao; 
	
	/**
	 * @category 预约设置保存
	 * @author 韩守松
	 * @date   2015年8月28日
	 * @param  @param bidSubscribe
	 */
	@Transactional
	public void save(BidSubscribe bidSubscribe) {
		bidSubscribeDao.save(bidSubscribe);
	}
	
	
	/**
	 * @category 获取预约信息
	 * @author 韩守松
	 * @date   2015年8月28日
	 * @param  @param page
	 * @param  @param bidSubscribe
	 * @param  @return
	 */
	public Pagination getList(Pagination page,BidSubscribe bidSubscribe) {
		return bidSubscribeDao.getList(page, bidSubscribe);
	}
	
	/**
	 * @category 根据预约id 获取预约信息 
	 * @author 韩守松
	 * @date   2015年8月29日
	 * @param  @param bidSubscribeId
	 * @param  @return
	 */
	@SuppressWarnings("rawtypes")
	public List getBidSubscribeById(String bidSubscribeId) {
		return bidSubscribeDao.getBidSubscribeById(bidSubscribeId);
	}
	
	/**
	 * @category 预约设置信息编辑
	 * @author 韩守松
	 * @date   2015年8月29日
	 * @param  @param bidSubscribe
	 * @param  @return
	 */
	@Transactional
	public Pagination update(BidSubscribe bidSubscribe) {
		return bidSubscribeDao.update(bidSubscribe);
	}
	
	
	/**
	 * @category 预约设置状态 更新
	 * @author 韩守松
	 * @date   2015年8月30日
	 * @param  @param bidSubscribe
	 * @param  @return
	 */
	@Transactional
	public Pagination statusUpdate(BidSubscribe bidSubscribe){
		return bidSubscribeDao.statusUpdate(bidSubscribe);
	}
	
	/**
	 * @category 预约新建状态开启 
	 * @author 韩守松
	 * @date   2015年8月30日
	 * @param  @param bidSubscribe
	 * @param  @return
	 */
	public Pagination isEnableUpdate(BidSubscribe bidSubscribe){
		return bidSubscribeDao.isEnableUpdate(bidSubscribe);
	}
	
	/**
	 * @category 根据预约设置id 获取预约信息
	 * @author 韩守松
	 * @date   2015年9月2日
	 * @param  @param bidSubscribeId
	 * @param  @return
	 */
	public List<BidSubscribe> getBidSubscribeBySubscribeId(String bidSubscribeId) {
		return bidSubscribeDao.getBidSubscribeBySubscribeId(bidSubscribeId);
	}
	
	/**
	 * @category 获取预约项目信息
	 * @author 韩守松
	 * @date   2015年9月6日
	 * @param  @param page
	 * @param  @param bidProject
	 * @param  @return
	 */
	 public Pagination getProjList(Pagination page,BidProject bidProject) {
		return bidSubscribeDao.getProjList(page, bidProject);
	}
	 
	 /**
	  * @category 获取预约设置时间段上限人数
	  * @author 韩守松
	  * @date   2015年9月7日
	  * @param  @param bidSubscribe
	  * @param  @return
	  */
	 public Integer getUntilNumber(BidSubscribe bidSubscribe) {
		return bidSubscribeDao.getUntilNumber(bidSubscribe);
	}
	 
	 /**
	  * @category 获取预约企业列表信息
	  * @author 韩守松
	  * @date   2015年9月7日
	  * @param  @param bidSubscribeDetail
	  * @param  @return
	  */
	 public Pagination getSubCompList(BidSubscribeDetail bidSubscribeDetail) {
		return bidSubscribeDao.getSubCompList(bidSubscribeDetail);
	}
	 
	 public Pagination getSubCompTimeTwoList(BidSubscribeDetail bidSubscribeDetail) {
		return bidSubscribeDao.getSubCompTimeTwoList(bidSubscribeDetail);
	}
	 
	 /**
	  * @category 预约情况查看
	  * @author 韩守松
	  * @date   2015年9月17日
	  * @param  @return
	  */
	 public Pagination getCompRecord(Pagination page,BidSubscribeDetail bidSubscribeDetail) {
		return bidSubscribeDao.getCompRecord(page, bidSubscribeDetail);
	}
	 
	 /**
	  * @category 根据项目Id 获取相关预约信息
	  * @author 韩守松
	  * @date   2015年9月28日
	  * @param  @param projId
	  * @param  @return
	  */
	 public BidSubscribe  getIsSubscribe(String projId){
		 return bidSubscribeDao.getIsSubscribe(projId);
	 }
}

